不用科学上网的Vitis AI3.0 gpu docker镜像生成方法 您所在的位置:网站首页 vitis dpu 不用科学上网的Vitis AI3.0 gpu docker镜像生成方法

不用科学上网的Vitis AI3.0 gpu docker镜像生成方法

2023-04-05 14:17| 来源: 网络整理| 查看: 265

本文转载自:ATM.ZDark的CSDN博客

vitis-AI最近更新了3.0版本,对很多深度学习模型作了适配,在docker环境方面对cpu和A卡的ROCm生态提供预编译镜像,但是CUDA生态下的docker镜像还是需要自己生成。本人因个人原因,无法在电脑上安装科学上网工具,但是vitis-AI的docker生成需要大量利用apt,python,github等工具进行下载,所以就有了这篇博客作为流程记录。能科学上网的不用看了,直接按官方手册的一键生成就行。本文以带Vitis-AI优化器的pytorch环境生成为例,tf类似

vitis-AI3.0官方手册

工作环境 Ubuntu20.04(官方手册上只有这个) docker23.0.1和nvidia-docker2.12.0(网上这方面资料多,就不展开讲了) Vitis-AI3.0(2023.4.1在官方github上git下来的源代码)

官方代码的docker镜像生成流程 1.pull一个nvidia提供的cuda镜像 2.安装基础组件 (位于/Vitis-AI/docker/common/install_base.sh文件中 3.安装conda环境 (位于/Vitis-AI/docker/common/install_conda.sh文件中 4.安装指定Vitis-AI工具环境 (位于/Vitis-AI/docker/common/install_opt_pytorch.sh文件中

不使用科学工具的流程介绍 cuda镜像的内部修改

1.获取cuda镜像

sudo docker pull nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu20.04

2.将镜像放入容器中打开,类似修改apt下载源 首先进行文件准备 编辑一个名为source.list的文件,内容如下

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

顺便在外面下载几个后续用得到的大文件一起挂载进去,后面直接用现成的,不然在指令过程中大文件下载卡住了就麻掉了

下载后改名为conda-channel.tar.gz 下载后改名为miniconda.sh

将上述三个文件放到Vitis-AI目录中一起挂载到docker镜像中去

3.用容器打开docker镜像

sudo docker run -v /home/Vitis-AI:/workspace -it 27caf6be35bd /bin/bash

4.将准备好的文件从挂载文件夹复制到docker容器中

cp /workspace/source.list /etc/apt cp /workspace/conda-channel.tar.gz /home cp /workspace/miniconda.sh /home

5.退出容器

exit

6.将修改后的docker容器保存为镜像并导出为tar文件

sudo docker commit 50684042ac28 sudo docker save -o ./vitis-ai-gpu_3.0.tar ff6de0ea4af2

7.删除前面生成的所有容器和镜像(先删除容器,再按从后到前的生成顺序删除镜像

sudo docker rm 容器ID sudo docker rmi 镜像ID

8.将tar文件导入并把名字换成之前pull的cuda镜像的名字,就成功完成了apt换源并将需要的大文件放入了镜像中,然后官方的docker生成代码会找到这个名字的cuda镜像进行后续处理

sudo docker load -i ./vitis-ai-gpu_3.0.tar sudo docker tag ff6de0ea4af2 nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu20.04

官方docker生成代码修改

1.python下载源修改 在Vitis-AI/docker/common/install_base.sh文件第286行添加

pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

在Vitis-AI/docker/common/install_opt_pytorch.sh文件第41行添加

&& pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \

2.github下载链接修改 如果愿意翻官方给的docker代码,可以将所有github.com换为hub.fastgit.org (或者其他好用的下载源)。(Vitis-AI3.0把docker文件拆分成了若干个,虽然在安装方面不用强制安装其他不需要的工具了,但是代码翻起来比2.5的麻烦多了,找来找去的。这里列出来几个需要改的 Vitis-AI/docker/common/install_base.sh文件305行 Vitis-AI/docker/common/install_base.sh文件328行

3.将几个大文件的下载指令改为复制指令 修改Vitis-AI/docker/common/install_opt_pytorch.sh文件第8行

修改前 wget -O conda-channel.tar.gz --progress=dot:mega ${VAI_CONDA_CHANNEL}; \ 修改后 cp /home/conda-channel.tar.gz ./; \

修改Vitis-AI/docker/common/install_conda.sh文件(这里不知道为什么为指令输入gpu但是他还是进了rocm的if支线中,所以我干脆按照Vitis-AI2.5的docker文件格式作了整体修改)

修改前 #!/bin/bash

set -ex if [[ ${DOCKER_TYPE} =~ .*'rocm'* && ${TARGET_FRAMEWORK} =~ .*"pytorch" ]]; then ln -s /opt/conda $VAI_ROOT/conda;

else

export HOME=~vitis-ai-user if [[ -d "/root/.local" ]]; then sudo chmod -R 777 /root/.local fi sudo chmod 777 /root /root/.local /root/.local/bin || true

cd /tmp \ && wget --progress=dot:mega https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mamb... -O miniconda.sh \ && /bin/bash ./miniconda.sh -b -p $VAI_ROOT/conda \ && . $VAI_ROOT/conda/etc/profile.d/conda.sh \ && conda install -y conda-build \ && rm -fr /tmp/miniconda.sh \ && /$VAI_ROOT/conda/bin/conda clean -y --force-pkgs-dirs fi

echo ". $VAI_ROOT/conda/etc/profile.d/conda.sh" >> ~vitis-ai-user/.bashrc sudo ln -s $VAI_ROOT/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh

修改后 #!/bin/bash

set -ex

export HOME=~vitis-ai-user if [[ -d "/root/.local" ]]; then sudo chmod -R 777 /root/.local fi sudo chmod 777 /root /root/.local /root/.local/bin || true

cd /tmp \ && sudo cp /home/miniconda.sh ./ \ && sudo chmod +777 ./miniconda.sh \ && /bin/bash ./miniconda.sh -b -p $VAI_ROOT/conda \ && . $VAI_ROOT/conda/etc/profile.d/conda.sh \ && conda install -y conda-build \ && sudo rm -fr /tmp/miniconda.sh \ && /$VAI_ROOT/conda/bin/conda clean -y --force-pkgs-dirs

echo ". $VAI_ROOT/conda/etc/profile.d/conda.sh" >> ~vitis-ai-user/.bashrc sudo ln -s $VAI_ROOT/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh

生成docker 进入Vitis-AI/docker文件夹(这里根据自己需要的环境修改参数,参考Vitis3.0的官方文档修改即可

sudo ./docker_build.sh -t gpu -f opt_pytorch



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有